SIP devices may offer a wide range of applications and services to users of those devices. Typically, internet technologies and related protocols such as Hypertext Transfer Protocol (“HTTP”) and Hypertext Transfer Protocol Secure (“HTTPS”) are often the primary method by which applications and services are provided to users of such devices. But, SIP devices usually require a degree of interaction whereby it is necessary for the application server to initiate a communication to the SIP device or to trigger a SIP device to initiate a connection to the application server at any given time.
In corporate communication network environments, it is common for SIP devices to be placed behind a firewall or a network address translation server for security reasons. Such security measures can render the SIP devices inaccessible to an application server though the SIP device may still access the application server by initiating a communication with that server. As a result, the application server may not be able to initiate a communication as required for certain applications, which can cause problems for the SIP device and user trying to utilize such an application. For instance, the application may not be able to perform its operation when the SIP device is not within a corporate network or may not reliably run when the SIP device is in such a network. As another example, the SIP device may only be able to act as a client in the interface to the application server such that the SIP device always has to be the entity that establishes the connection to the application server.
To address such an issue, SIP devices may poll an application server at specific times or predefined intervals. Alternatively, the SIP device may utilize a long polling method that permits the application server to hold a request and wait for information to be available for sending to the device so that that a reduced number of polling requests from the SIP device may need to be sent. Such polling utilizes substantial resources as many messages are transmitted between devices to perform the polling that are often unnecessary. Additionally, a server may need to utilize its resources to address whether an update is needed in response to such polling even when no update is needed. Further, such polling prevents substantially real-time updating of an application occurring as updates only occur on a scheduled bases predefined by the polling schema utilized by the device.
Yet another option is to utilize a contact proxy so that the load associated with supporting the polling of SIP devices can be off loaded by the application server to another device. For instance, the application server may send call back requests to the proxy, which may record the call back requests for different SIP devices. The SIP device may then get a notification via polling of the proxy server and the application server may subsequently receive the requested callback from the SIP device. Use of such a proxy has the same downsides as use of polling noted above as substantial network resources may be used for the transmission of polling messages and also may prevent real-time or substantially real-time updating of the SIP device.
We have determined that an improved communication device, method, and system are needed to improve the ability of SIP capable devices to communicate with different devices such as an application server. Some embodiments of our apparatuses and methods can permit application services to be offered to SIP devices that are behind a firewall or a network address translation server.